package com.sh.rbac.domain.entity;

import com.sh.rbac.core.encrypt.annotation.FieldEncrypt;
import com.sh.rbac.core.mybatis.base.BaseEntity;
import com.sh.rbac.core.sensitive.annotation.Sensitive;
import com.sh.rbac.core.sensitive.enums.SensitiveStrategy;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 系统文件配置表
 *
 * @author lucky
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class FileConfig extends BaseEntity {

    /**
     * 配置名称
     */
    private String name;

    /**
     * 存储类型
     */
    private String storageType;

    /**
     * 基础路径
     */
    private String basePath;

    /**
     * 访问密钥
     */
    @Sensitive(strategy = SensitiveStrategy.KEY, roleKeys = {"ROLE_ADMIN"}, perms = {"sys:file-config:edit"})
    @FieldEncrypt
    private String accessKey;

    /**
     * 密钥
     */
    @Sensitive(strategy = SensitiveStrategy.KEY, roleKeys = {"ROLE_ADMIN"}, perms = {"sys:file-config:edit"})
    @FieldEncrypt
    private String secretKey;

    /**
     * 存储桶名称
     */
    private String bucketName;

    /**
     * 文件存储地址
     */
    @FieldEncrypt
    private String endpoint;

    /**
     * 是否默认;0-否，1-是
     */
    private Integer isDefault;

    /**
     * 区域
     */
    private String region;

    /**
     * 自定义域名
     */
    //private String domain;

    /**
     * 备注
     */
    private String remark;
}